package firstStage.part2;

/*逻辑运算符概述
在数学中, 一个数据x,大于3,小于6,我们可以这样来进行表示: 3<x<6.
在Java中，需要把上面的式子先进行拆解，再进行合并表达。
● 拆解为: x>3和x<6
● 合并后: x>3&&x<6
&&其实就是一个逻辑运算符.我们可以这样说，逻辑运算符，是用来连接关系表达式的运算符。当然，逻辑运算符也可以直接连接布尔类型的常量或者变量.
*/
/*
	符号			作用			说明
	&			逻辑与		a&b, a和b都是true, 结果为true,否则为false
	|			逻辑或		a|b, a和b都是false, 结果为false, 否则为true
	^			逻辑异或		a^b，a和b结果不同为true,相同为false
	!			逻辑非		!a,结果和a的结果正好相反
*/
public class LuoJiYunSuanFu {
    public static void main(String[] args) {
        int i = 10;
        int j = 20;
        int k = 30;
        //&		有false则false
        System.out.println((i > j) & (i > k));//false & false
        System.out.println((i < j) & (i > k));//true & false
        System.out.println((i > j) & (i < k));//false & true
        System.out.println((i < j) & (i < k));//true & true
        //|		有true则true
        System.out.println((i > j) | (i > k));//false | false
        System.out.println((i < j) | (i > k));//true | false
        System.out.println((i > j) | (i < k));//false | true
        System.out.println((i < j) | (i < k));//true | true
        //^		相同为false，不同为true
        System.out.println((i > j) ^ (i > k));//false ^ false
        System.out.println((i < j) ^ (i > k));//true ^ false
        System.out.println((i > j) ^ (i < k));//false ^ true
        System.out.println((i < j) ^ (i < k));//true ^ true
        //!
        System.out.println(!(i > j));//false

    }
}
